① java类的继承使用
packagecom.webtest.test;
publicclassPeople{
Stringname;
intage;
publicvoidsay(){
}
}
packagecom.webtest.test;
publicclassStudent{
privateintnumber;
publicintgetNumber(){
returnnumber;
}
publicvoidsetNumber(intnumber){
this.number=number;
}
}
packagecom.webtest.test;
{
publicvoidsay(){
System.out.println("我是老师");
}
}
packagecom.webtest.test;
publicclassExample{
publicstaticvoidmain(String[]args){
Studentstudent=newStudent();
student.setNumber(50);
System.out.println("学生数量:"+student.getNumber());
Teacherteacher=newTeacher();
teacher.say();
}
}
② 使用java继承机制编程有什么好处谈谈你的实践体会
更安全。
继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。继承提供了软件复用功能。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。提供多重继承机制。出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
③ java继承调用
1、首先创建一个父类
//A.java
publicclassA{
privateinti;
protectedintj;
publicvoidfunc(){
}
}
2、子类则可以使用父类的方法
//B.java
publicclassBextendsA{
}
详情JDK8教程可参考java基础技术网站52diandi.com
④ java的继承
继承破坏了封装性,换句话说,子类依赖于父类的实现细节。 需要进一步说明,这与方法调用不同,方法调用也依赖被调用的方法,但是并不依赖细节,也就是说,只要方法整体实现没有问题,方法调用就没有问题,但是继承很容易改变父类实现的细节(所以父类中能写成final尽量写成final),即使父类整体没有问题,也有可能因为子类细节实现不当,而破坏父类的约束。这使得继承具有脆弱性。 或者说,继承让子类很容易破坏影响父类的约束,父类约束的实现依赖子类的实现,并且,父类在他的后续版本中可以获得新的方法,而这个会对子类造成影响,虽然子类的代码没有变化,当初子类实现的时候也不知道未来的变化,显得很无辜。 Here, overriding is the root of evil..... 继承使得到的API限制在原始想重用的实现上,导致可变更性变差,限制了你的类的性能。 继承使得有了更多机会来暴露了类内部的细节,比如Properties p的例子,p.getProperty(String key),p.get(String key)。 继承很容易传播现有API内部的缺陷
http://www.dewen.org/q/6210
⑤ java 怎么使用接口、继承
使用接口
1、用关键词implements实现接口
2、且实现接口的方法
使用继承
1、用关键词extends继承
2、且实现父类的粗像方法
⑥ java使用什么关键字实现继承
Java 用关键字extends实现继承,具体为 class 子类名 extends 父类名{}
如果父类中无无参构造函数,记得使用super()调用父类的有参构造函数,如果父类中有抽象方法,也请记得实现
⑦ java中为什么要使用继承
1)子类继承父类可以获取父类全部的成员变量和方法
2)减少代码的冗余,提高类的复用,提升程序员的内开发效率;
3)继承关系是传递的,只有一个直接父类但是可以容有无数个间接父类,每一层都可以根据自身需要,扩展代码实现功能
4)各种设计模式的基础之一
⑧ java中为什么要使用继承
继承: 1,提高了代码的复用性。 2,类与类之间产生了关系,关系的出现,就是多态的由来。
java只支持单继承,不支持不多继承。 原因:当出现多个类中有相同方法时,子类不确定调用的是哪一个。 其实就是父类中的方法有方法体。 但是java支持多层继承。在多层继承中,父类定义都是共性成员。 所体现的内容: 1,父类是不断向上抽取而来的。 2,既然父类体现的共性内容,那么在使用一个继承体系时, 只需要查阅最顶层父类即可了解该体系的基本功能。(查阅API技巧之一) 3,只要建立最子类的对象即可对该继承体系进行应用。
子父类的出现,子类因为持有一个父类引用super,可以获取到父类中非私有的成员。 如同子类中也有一个份一样。
覆盖(复写)override. 对于成员函数,当子父类中出现了一模一样的函数时,会出现一个覆盖操作。 在运行时,会运行子类中的方法。 覆盖注意: 1,子类覆盖父类方法,必须权限大于等于父类。 2,静态覆盖静态。 3,覆盖只发生在函数上。
什么时候使用覆盖呢? 可以通过覆盖的形式对父类的功能进行重新定义。 比如:对功能进行修改或者对功能进行升级。 注意:不要在子类中定义新功能。还要以父类中的声明为主。
class Demo {
void show() {
System.out.println("Demo show");
}
}
main()
{ //Demo d = new Demo();
SubDemo d = new SubDemo();
d.show();
}
二年后。 为了提高可维护性。 建立一个子类继承Demo,复写其中的某些需要修改的功能即可。
class SubDemo extends Demo {
void show() {
System.out.println("subdemo show");
}
}
super关键字:代表的父类应用。super的应用和this的使用完全一样。
子类的实例化过程: 子类中所有的构造函数回去访问父类中的空参数构造函数。 那是因为:每一个子类构造函数中的第一行都有一个句隐式super()语句。 原理:子类继承父类,获取获取到了父类中的成员,所以子类必须要先明确父类是如何对这些成员进行初始化的。
如何父类中没有了空参数构造函数,需要在子类的构造函数通过super,或者this语句指定要访问的构造函数。
什么时候使用继承呢? 当类与类之间出现所属(is a)关系时,就使用继承。 类中的所有成员是否可以被另一个类所以拥有. 如果是继承. 如果不是,看是否具备向上抽取的可能. class A {
void method(){}
void function(){}
}
有了一个B类,B中也需要一个method()方法。 这时,是否可以用B继承A来获取这个方法呢?因为这样不是可以提高复用性吗?
那么判断,B和A之间有所属关系吗?不会判断。 这时,可以通过另一个方式,B是否应用具备A中所有功能? 不是。B只需一个method()方法即可。不需要function()。这样就不需要继承。 但是B中就会重复定义method()方法。 那么A和B出现了共性的内容,就具备了向上抽取的内容。这时A和B就又出现一个父类C。
class B {
void method(){}
void show(){}
}
所以最终设计: class C {
void method(){}
}
class A extends C {
void function(){}
}
class B extends C {
void show(){}
}
----------------------------------------------
final 关键字 1,final可以修饰类,方法,变量。 2,final修饰类不可以被继承,但是可以继承其他类。 3,final修饰的方法不可以被覆盖,但可以覆盖父类方法。 4,final修饰的变量包括成员变量,类变量,局部变量,这些变量只能赋值一次。 5,内部类在局部时,只可以访问被final修饰的局部变量。 通常规范中,被final修饰的变量是一个常量,常量名称所有字母大写。
-----------------------------------------------
抽象类: 分析事物时,发现了共性内容,就出现向上抽取。 会有这样一种特殊情况,就是功能声明相同,但功能主体不同。 那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。 那么该方法就是一个抽象方法。 抽象方法的表现形式:abstract 返回值类型 函数名称(参数列表); 抽象方法一定要存放在抽象类中。
特点: 抽象类不能用new进行实例化。 想要创建对象,必须通过子类复写父类中所有的抽象方法后,该子类才可以创建对象。
抽象类定义时,和一般类一样,都是在描述事物,只不过抽象类可以存放抽象方法,不可以建立对象。
抽象方法的出现可以强迫子类去做某些事。
例:学员类的例子。 学员类的出现其实分析了现实生活中的学生而来的。 张三:躺着睡觉,学习(总结式) 李四:躺着睡觉,学习(机械式)
abstract class 学员 {
void 睡觉(){
躺着睡觉;
}
abstract void 学习();
}
-------------------------------------------- 接口: 简单的理解成抽象类的特殊表现形式,当抽象类的方法全都是抽象的,那么这时就用接口来表示。
特点: -- 接口是对外暴露的规则。 -- 接口是功能的扩展。 -- 接口的出现降低了耦合性。 -- 在java中,多继承的机制被java通过另一种形式来体现,就是多现实。 -- 在java中,一类可以继承一个类的同时,实现多个接口。 例子:主板的pci接口。插座。笔记本电脑的usb接口。
interface 抽烟 {
抽烟方法;
}
class 张三 extends 学员 implements 抽烟 {
void 睡觉(){
躺着睡觉;
}
void 学习(){}
抽烟方法{}
}
接口中通常的定义的内容: 1,全局常量。public static final 2,公有的抽象方法。 public abstract
类与类之间是继承关系。
类与接口之间是实现关系。
接口与接口之间是继承关系,而且,接口之间存在多继承
⑨ java用继承的方法求最大值
Java中使用继承的方法求最大值的一种方法是定义一个抽象类来表示一组数据,并在该抽象类中定义一个抽象方法来求最大值。然后,你可以通过继承该抽象类并实现抽象方法来创建不同的子类,用来求解不同的数据集的最大值。
例如,你可以定义一个抽象类DataSet来表示一组数据,并在其中定义一个抽象方法getMax来求最大值。然后,你可以通过继承DataSet类并实现getMax方法来创建一个IntegerDataSet类,用来求解一组整数数据的最大值。
⑩ java中的继承定义。
继承是面向对象最显着的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。
java继承特征:
(1)继承关系是传递的。若类C继承类B,类B继承类A(多继承),则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。
(2)继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。
(3)继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。
(4)继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。
(5)提供多重继承机制。从理论上说,一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性与方法,这便是多重继承。Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。