/* 多态注意事项: 1、多态是方法的多态,属性没有多态 2、父类和子类,有联系 类型转换异常!ClassCastException! 3、存在条件:继承关系,方法需要重写,父类引用指向子类对象 Person s2 = new Student(); */
package oop; import oop.demo07.Person; import oop.demo07.Student; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //类型间的转换 : 父 子 //高 低 Person s = new Student(); //将这个对象转换为Student类型就可以使用Student类型的方法了 Student s1 = (Student) s; s1.go(); Student student = new Student(); Person person = student; } } /* 1、父类引用指向子类对象 2、把子类对象转换为父类,向上转型 3、把父类转换为子类,向下转型,强制转换 4、方便方法的调用,减少重复的代码!简洁 抽象: 封装、继承、多态! 抽象类 接口 */
static关键字
package oop.demo08; public class Person { { System.out.println("匿名代码块");//代码块(匿名代码块) } static { System.out.println("静态代码块");//静态代码块:对象创建时执行,只执行一次 } public Person() { System.out.println("构造方法"); } public static void main(String[] args) { Person person1 = new Person(); System.out.println("===================="); Person person2 = new Person(); } }
static 静态导入包
正常:
package oop.demo08; public class Test { public static void main(String[] args) { System.out.println(Math.random()); } }
静态导入包:
package oop.demo08; //静态导入包 import static java.lang.Math.random; public class Test { public static void main(String[] args) { System.out.println(random()); } }
final关键字
父类被final修饰,子类无法继承
不能new这个抽象类,只能靠子类去实现它,约束!抽象类里面可以写普通方法、抽象方法必须在抽象类中!
抽象类存在构造器!
接口:
作用: 1、约束 2、定义一些方法,让不同的人实现 3、方法: public abstract 4、常量:public static final 5、接口不能被实例化,接口没有构造方法 6、接口可以implements多个接口 7、必须要重写接口中的方法
package oop.demo10; //抽象的思维! //interface 定义的关键字, 接口都需要有实现类 public interface UserService { //接口中的所有定义其实都是抽象的 public abstract void add(String name); void delete(String name); void update(String name); void query(String name); }
package oop.demo10; public interface TimeService { void timer(); }
package oop.demo10;
//抽象类 extends
//类 可以实现接口 implements 接口
//实现了接口的类,就需要重写接口的方法
//多继承 利用接口来实现多继承
public class UserServiceImpl implements UserService,TimeService{
@Override
public void add(String name) {
}
@Override
public void delete(String name) {
}
@Override
public void update(String name) {
}
@Override
public void query(String name) {
}
@Override
public void timer() {
}
}标签:String,void,多态,接口,Person,static,public From: https://blog.csdn.net/m0_46479109/article/details/140234109